Catch failed http requests that didn't error so we can handle them correctly #847
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
http.get
promise treated any request that made it through thepcall
without erroring as a success toresolve
.ApiContext
would then check the status code andreject
, but by then it's too late to handle gracefully and we just show the error code and stop the sync.This improves that. We create a relevant
Error
object for requests that are not success codes, so thatApiContext
can handle them correctly.The immediate impact is that GitHub Codespaces is now compatible with Rojo, since requests to the forwarded port receive a 504 Gateway Timeout after 100 seconds. Given our long polling, we simply resend requests that return a timeout.